/*
 * File:   Obstacle.h
 * Author: Elevator
 *
 * Created on August 2, 2013, 11:44 PM
 */

#ifndef OBSTACLE_H
#define OBSTACLE_H

#include <string>
#include "Physics/Physics.h"
#include "Logic/IEntity.h"

class Obstacle : public IEntity
{
public:
	Obstacle( std::string id );
	Obstacle( std::string id, IIterable<physics::IBody*>* bodies );
	virtual ~Obstacle( );

	std::string GetId( ) const
	{
		return _id;
	}

	const IIterable<physics::IBody*>* GetBodies( ) const
	{
		return &_bodies;
	}

	void AddBody( physics::IBody* body );
	void RemoveBody( physics::IBody* body );

	virtual void Update( float dt );
	virtual void Draw( ) const;

private:
	std::string _id;
	Vector<physics::IBody*> _bodies;
};

#endif	/* OBSTACLE_H */

